.\" Copyright (C) 2022 Stefan Roesch <shr@devkernel.io>
.\"
.\" SPDX-License-Identifier: LGPL-2.0-or-later
.\"
.TH io_uring_register_napi 3 "November 16, 2022" "liburing-2.4" "liburing Manual"
.SH NAME
io_uring_register_napi \- register NAPI busy poll settings
.SH SYNOPSIS
.nf
.B #include <liburing.h>
.PP
.BI "int io_uring_register_napi(struct io_uring *" ring ","
.BI "                           struct io_uring_napi *" napi)
.PP
.fi
.SH DESCRIPTION
.PP
The
.BR io_uring_register_napi (3)
function registers the NAPI settings for subsequent operations. The NAPI
settings are specified in the structure that is passed in the
.I napi
parameter. The structure consists of the napi timeout
.I busy_poll_to
(napi busy poll timeout in us) and
.IR prefer_busy_poll .

Registering a NAPI settings sets the mode when calling the function
napi_busy_loop and corresponds to the SO_PREFER_BUSY_POLL socket
option.

NAPI busy poll can reduce the network roundtrip time.


.SH RETURN VALUE
On success
.BR io_uring_register_napi (3)
return 0. On failure they return
.BR -errno .
It also updates the napi structure with the current values.
